﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Viewer.BusinessObject.BusinessEntities;
using Ext.Net;

namespace Viewer.NhanSu.UserControl
{
    public partial class UCNgheNghiep : System.Web.UI.UserControl
    {
        NSNgheNghiep ngheNghiep = new NSNgheNghiep();
        private List<NSNgheNghiep> lst;
        NSNhanVien nhanvien = new NSNhanVien();
        CommonCode common = new CommonCode();
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        private void ResetControl()
        {
            txtCodeNghe.Text = string.Empty;
            txtTenNgheNghiep.Text = string.Empty;
            dtNgayBatDau.Text = DateTime.Today.ToString("dd/MM/yyyy");
            dtNgayKetThuc.Text = string.Empty;
            txtGhiChu.Text = string.Empty;
            cbbChuyenNganh.SelectedItem.Value = string.Empty;
        }
        [DirectMethod]
        public void LookUp_TimNghe()
        {
            UCTimNghe.ShowDialogTimNghe(common.NgheNghiep);
            X.Mask.Hide();
        }
        [DirectMethod]
        public void ShowDialog(string type, string hdId, string nhanvienID, string typeParent)
        {
            hdNhanVienId.Text = nhanvienID;
            hdNgheId.Text = hdId;
            if (type.Equals("AddNew"))
            {
                wdNgheNghiep.Title = "Tạo mới nghề nghiệp";
                ResetControl();
                hdType.Text = type;
                btnSave.Hidden = false;
                hdParentType.Text = typeParent;
            }
            else if (type.Equals("Edit"))
            {
                wdNgheNghiep.Title = "Sửa đổi nghề nghiệp";
                hdType.Text = type;
                btnSave.Hidden = false;
                LoadDataNBL(Convert.ToInt16(hdId));
            }
            else if (type.Equals("View"))
            {
                wdNgheNghiep.Title = "Xem chi tiết nghề nghiệp";
                hdType.Text = type;
                btnSave.Hidden = true;
                LoadDataNBL(Convert.ToInt16(hdId));
            }
            wdNgheNghiep.Show();
        }
        public void LoadDataNBL(int id)
        {
            lst = (List<NSNgheNghiep>)Session["NgheNghiep"];
            NSNgheNghiep item = lst.Where(a => a.NgheNghiepId.Equals(id)).SingleOrDefault();
            dtNgayBatDau.Text = item.NgayBatDau.Value.ToString("dd/MM/yyyy");
            dtNgayKetThuc.Text = item.NgayKetThuc.HasValue && !item.NgayKetThuc.Value.Year.Equals(1) ? item.NgayKetThuc.Value.ToString("dd/MM/yyyy") : string.Empty;
            txtGhiChu.Text = item.GhiChu;
            txtTenNgheNghiep.Text = common.LoadCommonCodeById((int)item.CodeIdNgheNghiep);
            txtCodeNghe.Text = common.LoadCodeStringById((int)item.CodeIdNgheNghiep);
            hdNgheNghiepId_LookUp.Value = item.CodeIdNgheNghiep.ToString();
            storeChuyenNganh.DataSource = common.LoadDataByCodeIDCha((int)item.CodeIdNgheNghiep);
            storeChuyenNganh.DataBind();
            cbbChuyenNganh.SelectedItem.Value = item.ChuyenNganhId.HasValue && item.ChuyenNganhId.Value > 0 ? item.ChuyenNganhId.Value.ToString() : string.Empty;
        }
        protected void btnSaveNghe_CLick(object sender, DirectEventArgs e)
        {
            DateTime ngayHieuLuc = Convert.ToDateTime(dtNgayBatDau.Text);
            DateTime ngayHetHieuLuc = !dtNgayKetThuc.Text.Equals("01/01/0001") ? Convert.ToDateTime(dtNgayKetThuc.Text) : DateTime.MinValue;
            int nhanVienId = !string.IsNullOrEmpty(hdNhanVienId.Text) ? Convert.ToInt16(hdNhanVienId.Text) : 0;
            int codeIdNgheNghiep = !string.IsNullOrEmpty(hdNgheNghiepId_LookUp.Value.ToString()) ? Convert.ToInt32(hdNgheNghiepId_LookUp.Value) : 0;
            int chuyenNganhId = !string.IsNullOrEmpty(cbbChuyenNganh.SelectedItem.Value) ? Convert.ToInt32(cbbChuyenNganh.SelectedItem.Value) : 0;

            if (hdType.Text.Equals("AddNew"))
            {
                NSNgheNghiep item = ngheNghiep.GetNgheNghiep(nhanVienId, ngayHieuLuc, ngayHetHieuLuc, txtGhiChu.Text, codeIdNgheNghiep, chuyenNganhId);
                ((UCNhanVien)this.Parent).GetNgheNghiep(item);
            }
            else if (hdType.Text.Equals("Edit"))
            {
                ngheNghiep.EditNN(Convert.ToInt16(hdNgheId.Text), ngayHieuLuc, ngayHetHieuLuc, txtGhiChu.Text, codeIdNgheNghiep, chuyenNganhId);
                ((UCNhanVien)this.Parent).ReloadGrid("NgheNghiep");
            }
            X.Mask.Hide();
            wdNgheNghiep.Hide();

        }
        [DirectMethod]
        public void FindCommonName_NgheNghiep(string codeString)
        {
            CHCommonCode obj = common.LoadCommonCodeByCodeString(codeString, common.NgheNghiep);
            if (obj != null)
            {
                txtCodeNghe.Text = obj.CodeString;
                txtTenNgheNghiep.Text = obj.CodeValue;
                hdNgheNghiepId_LookUp.Value = obj.CodeID;
                storeChuyenNganh.DataSource = common.LoadDataByCodeIDCha(obj.CodeID);
                storeChuyenNganh.DataBind();
            }
            else
            {
                txtCodeNghe.Text = string.Empty;
                txtTenNgheNghiep.Text = string.Empty;

            }

        }
        [DirectMethod]
        public void LoadChuyenNganh(string codeId)
        {
            int id;
            try
            {
                id = int.Parse(codeId);
            }
            catch (Exception)
            {

                id = 0;
            }
            storeChuyenNganh.DataSource = common.LoadDataByCodeIDCha(id);
            storeChuyenNganh.DataBind();
        }

    }
}